package com.chinacoal.microservice.pojo;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.enums.IdType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;


/**
 * @author zhuliang
 * @version V1.0
 * @Description: 费用管理
 * @date 2020-11-27 9：26
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@ApiModel(value = "费用管理")
public class CcmsSmartleasingExpenseManag implements Serializable {

    @ApiModelProperty(value = "uuid主键")
    @TableId(value = "pk_expense_manag_id", type = IdType.UUID)
    private String pkExpenseManagId;

    @ApiModelProperty(value = "创建时间")
    private Date creationDate;

    @ApiModelProperty(value = "最后变更人")
    private Integer lastUpdatedBy;

    @ApiModelProperty(value = "最后变更时间")
    private Date lastUpdateDate;

    @ApiModelProperty(value = "删除标记,默认为'false'")
    private Byte deleteSign;

    @ApiModelProperty(value = "合同外键，与合同表关联")
    private String fkContractId;

    @ApiModelProperty(value = "统计年月")
    private Date statisticsMonth;

    @ApiModelProperty(value = "缴费金额(元)")
    private BigDecimal totalAmount;

    @ApiModelProperty(value = "缴费状态，0待缴费；1已缴费")
    private String paymentStatus;

    @ApiModelProperty(value = "缴费时间")
    private Date paymentTime;

    @ApiModelProperty(value = "缴费方式，0线上缴费；1手动缴费")
    private String paymentMethod;

    @ApiModelProperty(value = "发票状态，0待开票；1已开票;2开票中")
    private String invoiceStatus;

    @ApiModelProperty(value = "抄表状态，0未抄表；1已抄表")
    private String meterReadingStatus;

    @ApiModelProperty(value = "抄表时间")
    private Date meterReadingTime;

    @ApiModelProperty(value = "房租发票状态，0待开票；1已开票;2开票中")
    private String monthlyInvoiceStatus;


    @ApiModelProperty(value = "房间房号")
    @TableField(exist = false)
    private String houseNumber;

    @ApiModelProperty(value = "承租人姓名")
    @TableField(exist = false)
    private String tenantName;

    @ApiModelProperty(value = "楼宇名")
    @TableField(exist = false)
    private String buildingName;

    @ApiModelProperty(value = "出租人姓名")
    @TableField(exist = false)
    private String lessorName;

    @ApiModelProperty(value = "月租金")
    @TableField(exist = false)
    private BigDecimal monthlyRent;

    @ApiModelProperty(value = "楼宇id")
    @TableField(exist = false)
    private String fkBuildingId;

    @ApiModelProperty(value = "房间id")
    @TableField(exist = false)
    private String fkRoomId;

    @ApiModelProperty(value = "区域编号外键")
    @TableField(exist = false)
    private String areaNumberId;

    @ApiModelProperty(value = "区域名称")
    @TableField(exist = false)
    private String areaNumber;

    @ApiModelProperty(value = "上个月的水行度")
    @TableField(exist = false)
    private BigDecimal lastMonthWaterMobility;

    @ApiModelProperty(value = "上个月的电行度")
    @TableField(exist = false)
    private BigDecimal lastMonthElectricityMobility;

    @ApiModelProperty(value = "上个月的煤气行度")
    @TableField(exist = false)
    private BigDecimal lastMonthGasMobility;

    @ApiModelProperty(value = "本月的水行度")
    @TableField(exist = false)
    private BigDecimal monthWaterMobility;

    @ApiModelProperty(value = "本月的电行度")
    @TableField(exist = false)
    private BigDecimal monthElectricityMobility;

    @ApiModelProperty(value = "本月的煤气行度")
    @TableField(exist = false)
    private BigDecimal monthGasMobility;

    @ApiModelProperty(value = "换表费")
    @TableField(exist = false)
    private BigDecimal gasChangeWatchSpense;

    @ApiModelProperty(value = "煤气欠费")
    @TableField(exist = false)
    private BigDecimal gasArrears;

    @ApiModelProperty(value = "电梯费")
    @TableField(exist = false)
    private BigDecimal elevatorFee;

    @ApiModelProperty(value = "卫生费")
    @TableField(exist = false)
    private BigDecimal sanitationFee;

    @ApiModelProperty(value = "本体维修基金")
    @TableField(exist = false)
    private BigDecimal maintenanceFund;

    @ApiModelProperty(value = "电视费/煤保")
    @TableField(exist = false)
    private BigDecimal gasInsurance;

    @ApiModelProperty(value = "发票方式，0线上开票；1线下开票")
    @TableField(exist = false)
    private String invoiceMethod;

    @ApiModelProperty(value = "抄表数据信息主键id")
    @TableField(exist = false)
    private String pkExpenseEntryId;

    @ApiModelProperty(value = "通知单实体-缴费时使用")
    @TableField(exist = false)
    private CcmsSmartleasingNotice notice;

    @ApiModelProperty(value = "水费编码")
    @TableField(exist = false)
    private String waterCostCode;

    @ApiModelProperty(value = "电费编码")
    @TableField(exist = false)
    private String electricCostCode;

    @ApiModelProperty(value = "煤气费编码")
    @TableField(exist = false)
    private String coalGasCostCode;

    @ApiModelProperty(value = "单元编码(微信端)")
    @TableField(exist = false)
    private String unitCoding;

    @ApiModelProperty(value = "其他费用（微信端）")
    @TableField(exist = false)
    private BigDecimal otherExpenses;

    @ApiModelProperty(value = "地址信息")
    @TableField(exist = false)
    private String address;

    @ApiModelProperty(value = "应缴金额")
    private BigDecimal expensesReceivable;

    @ApiModelProperty(value = "实缴金额")
    private BigDecimal paidInExpenses;

    @ApiModelProperty(value="付费凭证")
    @TableField(exist = false)
    public String PaymentVoucher;

    @ApiModelProperty(value="付费说明")
    @TableField(exist = false)
    public String PaymentInstruction;

    @ApiModelProperty(value = "上月的热水行度")
    @TableField(exist = false)
    private BigDecimal lastMonthHotWaterMobility;

    @ApiModelProperty(value = "本月的热水行度")
    @TableField(exist = false)
    private BigDecimal monthHotWaterMobility;

    @ApiModelProperty(value = "热水费编码")
    @TableField(exist = false)
    private String hotWaterCostCode;

    private static final long serialVersionUID = 1L;
}
